"""
1.闭包是一个嵌套函数
2.内部函数使用了外部函数的变量
3.外部函数返回值是内部函数
"""
# return 可以返回任意的值，返回多个值(元组)，函数
def outer(m):
    n =10
    def inner():
        print(m+n)
    return inner  # 返回的是函数的引用，加了括号就是调用

# 第一种方式
# out = outer(10)  # out = inner
# print(out)
# # 想要调用内部函数的话
# out()

# 第二种方式
outer(10)()  # outer(10)() = inner()

# 装饰器的本质就是闭包

